package com.qidian.mes.md.service;

import com.qidian.mes.md.vo.*;
import com.qidian.mes.util.pojo.QdResult;
import java.util.List;

/**
 * @Author: 小可怎么都睡不够
 * @Description:
 * @Time: 2024-04-04 11:50
 **/
public interface MaterialAndProductService {
    QdResult<List<MaterialAndProductVO>> queryByParam(String name, Integer classifyId, String model,String stockStatus, Integer page, Integer limit,Integer tag);

    /**
     * @Author: 小可怎么都睡不够
     * @Date: 4/4/2024
     * @Description: 查询产品的工单信息
     * @Name: queryByProductId
     * @param productId 产品编号
     * @return: java.util.List<com.qidian.mes.md.vo.ProductOrderVO>
     */
    QdResult<List<ProductOrderVO>> queryByProductId(Integer productId);

    /**
     * @Author: 小可怎么都睡不够
     * @Date: 4/4/2024
     * @Description: 查询计划和实际完成量的信息
     * @Name: queryPlannedAndCompletionByProductId
     * @param idProduct 产品编号
     * @return: java.util.List<com.qidian.mes.md.vo.PlannedAndCompletionVO>
     */
    QdResult<List<PlannedAndCompletionVO>> queryPlannedAndCompletionByProductId(Integer idProduct);

    /**
     * @Author: 小可怎么都睡不够
     * @Date: 4/4/2024
     * @Description: 更新物料和产品的状态
     * @Name: updateMaterialAndProductStatus
     * @param id 物料或产品编号
     * @param status 状态
     * @param category 类别
     * @return: com.qidian.mes.util.pojo.QdResult
     */
    QdResult<List<MaterialAndProductVO>>  updateMaterialAndProductStatus(Integer id, String status, Integer category);


    /**
     * @Author: 小可怎么都睡不够
     * @Date: 6/4/2024
     * @Description:  更新产品/物料的阈值信息
     * @Name: updateMaterialAndProductInventory
     * @param id
     * @param inventory
     * @param category
     * @return: com.qidian.mes.util.pojo.QdResult
    */

    QdResult updateMaterialAndProductInventory(Integer id, Integer inventory, Integer category);

    /**
     * @Author: 小可怎么都睡不够
     * @Date: 6/4/2024
     * @Description:  更新产品/物料信息的分类（在删除分类的之后，界面展示分类信息变为了已弃用，可以通过这个方法来重新设置分类）
     * @Name: updateMaterialAndProductClassify
     * @param id 产品物料ID
     * @param classifyId 分类ID
     * @param category 类别(产品/物料)
     * @return: com.qidian.mes.util.pojo.QdResult
    */
    QdResult updateMaterialAndProductClassify(Integer id, Integer classifyId, Integer category);


    /**
     * @Author: 小可怎么都睡不够
     * @Date: 7/4/2024
     * @Description: 添加产品/物料信息
     * @Name: addMaterialAndProduct
     * @param data 产品/物料信息
     * @param category 类别 0:产品  1:物料
     * @return: com.qidian.mes.util.pojo.QdResult
    */
    QdResult addMaterialAndProduct(String data, Integer category);

    /**
     * @Author: 小可怎么都睡不够
     * @Date: 7/4/2024
     * @Description: 修改产品物料信息
     * @Name: updateMaterialAndProduct
     * @param data
     * @param category
     * @return: com.qidian.mes.util.pojo.QdResult
    */
    QdResult updateMaterialAndProduct(String data, Integer category);
    /**
     * @Author: 小可怎么都睡不够
     * @Date: 7/4/2024
     * @Description: 删除产品物料信息
     * @Name: deleteMaterialAndProduct
     * @param id
     * @param category
     * @return: com.qidian.mes.util.pojo.QdResult
    */
    QdResult deleteMaterialAndProduct(Integer id, Integer category);

}
